// samsting : this file is auto create.

#ifndef ALIYUN_Ons_OnsConsumerAccumulateResponse_H_
#define ALIYUN_Ons_OnsConsumerAccumulateResponse_H_

#include "core/acs_response.h"

namespace aliyun { namespace Ons {

class OnsConsumerAccumulateResponse : public AcsResponse {
public:
  OnsConsumerAccumulateResponse();

  class Data {
    friend class OnsConsumerAccumulateResponse;
  public:

    class DetailInTopicDo {
      friend class OnsConsumerAccumulateResponse;
      friend class Data;
    public:

      class ConsumeQueueOffset {
        friend class OnsConsumerAccumulateResponse;
        friend class Data;
        friend class DetailInTopicDo;
      public:
        const string& GetTopic(void) const;
        const string& GetBrokerName(void) const;
        int  GetQueueId(void) const;
        int64 GetBrokerOffset(void) const;
        int64 GetConsumerOffset(void) const;
        int64 GetLastTimestamp(void) const;
      private:
        string Topic_;
        string BrokerName_;
        int    QueueId_;
        int64  BrokerOffset_;
        int64  ConsumerOffset_;
        int64  LastTimestamp_;
      }; // ConsumeQueueOffset 

      const std::vector<ConsumeQueueOffset>& GetOffsetList(void) const;
      const string& GetTopic(void) const;
      float GetConsumeTps(void) const;
      int64 GetLastTimestamp(void) const;
      int64 GetDelayTime(void) const;
    private:
      std::vector<ConsumeQueueOffset> OffsetList_;
      string Topic_;
      float   ConsumeTps_;
      int64  LastTimestamp_;
      int64  DelayTime_;
    }; // DetailInTopicDo 

    const std::vector<DetailInTopicDo>& GetDetailInTopicList(void) const;
    bool GetOnline(void) const;
    int64 GetTotalDiff(void) const;
    float GetConsumeTps(void) const;
    int64 GetLastTimestamp(void) const;
    int64 GetDelayTime(void) const;
  private:
    std::vector<DetailInTopicDo> DetailInTopicList_;
    bool   Online_;
    int64  TotalDiff_;
    float   ConsumeTps_;
    int64  LastTimestamp_;
    int64  DelayTime_;
  }; // Data 

  const Data& GetData(void) const;
  const string& GetHelpUrl(void) const;

private:
  Data Data_;
  string HelpUrl_;

protected:
  const char* BaseKey(void);
  void         UnmarshallerMap(std::map<string, string>& response_map);

};

} } // namespace aliyun { namespace Ons {

#endif // #ifndef ALIYUN_Ons_OnsConsumerAccumulateResponse_H_

// end of file 
